JSON এবং XML Data Parse করা

Mobile App Development - অ্যান্ড্রয়েড ডেভেলপমেন্ট (Android) - Networking এবং Web API Integration
254

Android অ্যাপ্লিকেশনে API থেকে প্রাপ্ত ডেটা সাধারণত JSON বা XML ফরম্যাটে আসে। এই ডেটা প্যার্স করে ব্যবহারকারীর কাছে প্রদর্শন বা অ্যাপ্লিকেশনে প্রয়োজনীয় লজিক সম্পন্ন করা হয়। JSON (JavaScript Object Notation) এবং XML (eXtensible Markup Language) প্যার্স করার জন্য Android বিভিন্ন পদ্ধতি এবং লাইব্রেরি সরবরাহ করে।

JSON এবং XML Data Parse করা

নিচে JSON এবং XML ডেটা প্যার্স করার পদ্ধতি এবং উদাহরণ আলোচনা করা হলো:


১. JSON Data Parse করা

JSON একটি হালকা এবং সহজ ডেটা বিনিময় ফরম্যাট, যা সহজেই মানুষের পঠনযোগ্য এবং মেশিন প্যার্সেবল। Android এ JSON প্যার্স করার জন্য JSONObject, JSONArray, এবং Gson এর মতো লাইব্রেরি ব্যবহার করা হয়।

(ক) JSONObject এবং JSONArray এর মাধ্যমে JSON প্যার্স করা

উদাহরণ: JSON Data

{
    "name": "John Doe",
    "age": 30,
    "email": "john.doe@example.com",
    "addresses": [
        {"type": "home", "city": "New York"},
        {"type": "work", "city": "San Francisco"}
    ]
}

ধাপ ১: JSON String থেকে JSONObject তৈরি করা

String jsonString = "{ \"name\": \"John Doe\", \"age\": 30, \"email\": \"john.doe@example.com\", \"addresses\": [{ \"type\": \"home\", \"city\": \"New York\" }, { \"type\": \"work\", \"city\": \"San Francisco\" }] }";

try {
    JSONObject jsonObject = new JSONObject(jsonString);
    
    // ডেটা প্যার্স করা
    String name = jsonObject.getString("name");
    int age = jsonObject.getInt("age");
    String email = jsonObject.getString("email");

    JSONArray addressesArray = jsonObject.getJSONArray("addresses");
    for (int i = 0; i < addressesArray.length(); i++) {
        JSONObject addressObject = addressesArray.getJSONObject(i);
        String type = addressObject.getString("type");
        String city = addressObject.getString("city");
        // Address details handle করা
    }

} catch (JSONException e) {
    e.printStackTrace();
}

উপরের উদাহরণে, JSONObject এবং JSONArray ব্যবহার করে JSON ডেটা প্যার্স করা হয়েছে। getString(), getInt(), এবং getJSONArray() মেথড ব্যবহার করে JSON থেকে ডেটা বের করা হয়েছে।

(খ) Gson এর মাধ্যমে JSON প্যার্স করা

Gson হল একটি জনপ্রিয় লাইব্রেরি, যা JSON থেকে সরাসরি Java অবজেক্ট তৈরি করতে ব্যবহৃত হয়। এটি JSON প্যার্সিং অনেক সহজ করে তোলে।

ধাপ ১: Dependency যোগ করা (build.gradle)

implementation 'com.google.code.gson:gson:2.8.6'

ধাপ ২: JSON Model Class তৈরি করা

public class User {
    private String name;
    private int age;
    private String email;
    private List<Address> addresses;

    // Getters and Setters
}

public class Address {
    private String type;
    private String city;

    // Getters and Setters
}

ধাপ ৩: Gson এর মাধ্যমে JSON প্যার্স করা

Gson gson = new Gson();
User user = gson.fromJson(jsonString, User.class);

// Now user object contains all parsed data
String name = user.getName();
int age = user.getAge();

এখানে Gson লাইব্রেরি ব্যবহার করে JSON ডেটা সরাসরি User এবং Address ক্লাসে রূপান্তর করা হয়েছে।


২. XML Data Parse করা

XML হল একটি আরও স্ট্রাকচারাল ডেটা ফরম্যাট, যা Android অ্যাপ্লিকেশনে ডেটা বিনিময়ে ব্যবহৃত হয়। XML প্যার্স করার জন্য Android এ XmlPullParser, SAXParser, এবং DOM Parser এর মতো পদ্ধতি ব্যবহার করা হয়।

(ক) XmlPullParser এর মাধ্যমে XML প্যার্স করা

XmlPullParser হল Android এর জন্য একটি লাইটওয়েট XML প্যার্সার, যা XML ডেটা দ্রুত প্যার্স করতে সক্ষম। এটি একটি stream-based পদ্ধতি ব্যবহার করে, যেখানে ডেটা স্ট্রিম থেকে একের পর এক ট্যাগ প্যার্স করা হয়।

উদাহরণ: XML Data

xml

Copy code

<user>    <name>John Doe</name>    <age>30</age>    <email>john.doe@example.com</email>    <addresses>        <address>            <type>home</type>            <city>New York</city>        </address>        <address>            <type>work</type>            <city>San Francisco</city>        </address>    </addresses> </user>

ধাপ ১: XmlPullParser ব্যবহার করে XML প্যার্স করা

XmlPullParserFactory factory;
try {
    factory = XmlPullParserFactory.newInstance();
    XmlPullParser parser = factory.newPullParser();

    InputStream inputStream = new ByteArrayInputStream(xmlString.getBytes());
    parser.setInput(inputStream, null);

    int eventType = parser.getEventType();
    String text = null;

    while (eventType != XmlPullParser.END_DOCUMENT) {
        String tagName = parser.getName();
        switch (eventType) {
            case XmlPullParser.START_TAG:
                // ট্যাগের নাম চেক করা
                break;

            case XmlPullParser.TEXT:
                text = parser.getText();
                break;

            case XmlPullParser.END_TAG:
                if (tagName.equals("name")) {
                    String name = text;
                } else if (tagName.equals("age")) {
                    int age = Integer.parseInt(text);
                } else if (tagName.equals("email")) {
                    String email = text;
                }
                break;
        }
        eventType = parser.next();
    }

} catch (XmlPullParserException | IOException e) {
    e.printStackTrace();
}

উপরের উদাহরণে, XmlPullParser ব্যবহার করে XML ডেটা প্যার্স করা হয়েছে। START_TAG, TEXT, এবং END_TAG ইভেন্টের মাধ্যমে XML এর প্রতিটি অংশ প্যার্স করা হয়েছে।

(খ) DOM Parser এর মাধ্যমে XML প্যার্স করা

DOM (Document Object Model) Parser XML ডেটা পুরোপুরি মেমোরিতে লোড করে এবং তারপর তা প্যার্স করা হয়। এটি স্ট্রাকচারাল এবং সহজ, তবে বড় XML ডেটার ক্ষেত্রে এটি কম কার্যকরী হতে পারে।

উদাহরণ: DOM Parser ব্যবহার করে XML প্যার্স করা

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
    DocumentBuilder builder = factory.newDocumentBuilder();
    InputStream inputStream = new ByteArrayInputStream(xmlString.getBytes());
    Document document = builder.parse(inputStream);

    NodeList nameList = document.getElementsByTagName("name");
    String name = nameList.item(0).getTextContent();

    NodeList ageList = document.getElementsByTagName("age");
    int age = Integer.parseInt(ageList.item(0).getTextContent());

} catch (Exception e) {
    e.printStackTrace();
}

এখানে DocumentBuilderFactory ব্যবহার করে XML ডেটা প্যার্স করা হয়েছে এবং NodeList এর মাধ্যমে নির্দিষ্ট ট্যাগের ডেটা বের করা হয়েছে।


৩. JSON vs XML: তুলনা

বৈশিষ্ট্যJSONXML
Syntaxসহজ এবং হালকাজটিল এবং ভারী
Readabilityসহজেই পঠনযোগ্য এবং ব্যবহারযোগ্যকিছুটা কঠিন এবং বৃহত্তর
Sizeসাধারণত ছোট এবং কম স্পেস নেয়বড়, কারণ ট্যাগ গুলো বেশি জায়গা নেয়
Parsing Speedদ্রুত প্যার্স করা যায়তুলনামূলকভাবে ধীর
Structureকেবল JSON Object এবং Array সমর্থন করেXML Complex structures সমর্থন করে

উপসংহার

JSON এবং XML হল Android অ্যাপে ডেটা বিনিময়ের দুটি জনপ্রিয় ফরম্যাট। JSON সাধারণত সহজ এবং দ্রুত প্যার্স করার জন্য ব্যবহৃত হয়, যেখানে XML এর মাধ্যমে আরও স্ট্রাকচারাল ডেটা পাঠানো যায়। Android এ JSON প্যার্স করার জন্য JSONObject, JSONArray, এবং Gson এর মতো লাইব্রেরি এবং XML প্যার্স করার জন্য XmlPullParser এবং DOM Parser ব্যবহার করা যায়। অ্যাপ্লিকেশনের চাহিদা অনুযায়ী JSON বা XML ফরম্যাটের যেকোনোটি ব্যবহার করা যেতে পারে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...